package com.zz.controller;

import com.zz.dto.DrugResult;
import com.zz.pojo.Drug;
import com.zz.service.DrugService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * Copyright Zz
 * FileName: DrugController
 * Author:   Zz
 * Date:     2023/6/1018:42
 * Description:药品表控制层
 * hISTORY:
 * <author>  <time>     <version>    <desc>
 * 作者姓名   修改时间       版本号       描述
 */
@Controller
@RequestMapping("Drug")
public class DrugController {
    @Autowired
    private DrugService drugService;

    /**
     * 分页查询药品信息
     * @param map startIndex:起始下表 pageSize:页面大小
     * @return 分页查询的药品信息
     */
    @ResponseBody
    @GetMapping("queryDrugList")
    public DrugResult queryDrugList(@RequestParam Map<String,Integer> map){
        return drugService.queryDrugList(map);
    }

    /**
     * 通过传入信息查询相关药品信息
     * @param map 模糊查询的信息
     * @return 相关的药品信息
     */
    @ResponseBody
    @GetMapping("queryDrugByKey")
    public DrugResult queryDrugByKey(@RequestParam Map<String,Object> map){
        return drugService.queryDrugByKey(map);
    }

    /**
     * 增加药品信息
     *
     * @param drug 新的药品信息
     * @return 增加记录条数(1-成功 0-失败 2-主键重复)
     */
    @ResponseBody
    @PostMapping("insertDrug")
    public int insertDrug(@RequestBody Drug drug){
        return drugService.insertDrug(drug);
    }

    /**
     * 更新药品信息
     *
     * @param drug 更新后的药品信息
     * @return 修改记录条数（1-成功 0-无此药品）
     */
    @ResponseBody
    @PutMapping("updateDrug")
    public int updateDrug(@RequestBody Drug drug){
        return drugService.updateDrug(drug);
    }

    /**
     * 删除指定药品
     *
     * @param drugNumber 药品编号
     * @return 删除记录条数（1-成功 0-无此药品）
     */
    @ResponseBody
    @DeleteMapping("deleteDrug")
    public int deleteDrug(@RequestBody String drugNumber){
        return drugService.deleteDrug(drugNumber);
    }
}
